indicate which languages have subtitles already
authorJan Gerber <j@users.mediawiki.org>
Sun, 8 Nov 2009 10:12:28 +0000 (10:12 +0000)
committerJan Gerber <j@users.mediawiki.org>
Sun, 8 Nov 2009 10:12:28 +0000 (10:12 +0000)
js2/mwEmbed/libTimedText/mvTimeTextEdit.js

index 6e4df77..e6f2fe7 100644 (file)
@@ -37,72 +37,97 @@ js2AddOnloadHook( function() {
         'siprop' : 'languages'
       }
       }, function( langDataRaw ) {
-        var langData = {};
-        var languageSelect = '<select id="timed_text_language">';
+        var apprefix = wgTitle.split('.');
+        apprefix.pop();
+        apprefix.pop();
+        apprefix = apprefix.join('.');
+                         do_api_req({
+                                         'data': {
+                                                 'list' : 'allpages',
+                                                 'apprefix' : apprefix
+                                         }
+                         }, function( subData ) {
+                           var availableSubtitles = {};
+                                       for(var i in subData.query.allpages){
+                                               var subPage = subData.query.allpages[i];
+                                               var langKey = subPage.title.split('.');
+                                               var extension = langKey.pop();
+                                               langKey = langKey.pop();
+                                               availableSubtitles[langKey] = subPage.title;
+          }
+          var langData = {};
+          var languageSelect = '<select id="timed_text_language">';
 
-        var lagRaw = langDataRaw.query.languages;
-        for(var j in lagRaw){
-          var code = lagRaw[j].code;
-          var language = lagRaw[j]['*'];
-          langData[ code ] = language;
-          languageSelect += '<option value="'+code+'">'+language+'('+code+')</option>';
-        }
-        languageSelect += '/</select>';
-        var cBtn = {};
-        cBtn[ gM('mwe-cancel') ] = function(){
-          $j(this).dialog('close');
-        }
-        cBtn[ gM('mwe-ok') ] = function(){
-          var file = $j('#timed_text_file_upload');
-          var langKey = file[0].files[0].name.split('.');
-          var extension = langKey.pop();
-          langKey = langKey.pop();
-          var mimeTypes = {
-              'srt': 'text/x-srt',
-              'cmml': 'text/cmml'
+          var lagRaw = langDataRaw.query.languages;
+          for(var j in lagRaw){
+            var code = lagRaw[j].code;
+            var language = lagRaw[j]['*'];
+            langData[ code ] = language;
+            languageSelect += '<option value="'+code+'">';
+            if (availableSubtitles[code]) {
+              languageSelect += language+'('+code+') +';
+            } else {
+              languageSelect += language+'('+code+') -';
+            }
+            languageSelect += '</option>';
           }
-          if( !mimeTypes[ extension ] ){
-            js_log('Error: unknown extension:'+ extension);
+          languageSelect += '/</select>';
+          var cBtn = {};
+          cBtn[ gM('mwe-cancel') ] = function(){
+            $j(this).dialog('close');
           }
-          //get language from form
-          langKey = $j('#timed_text_language').val();
+          cBtn[ gM('mwe-ok') ] = function(){
+            var file = $j('#timed_text_file_upload');
+            var langKey = file[0].files[0].name.split('.');
+            var extension = langKey.pop();
+            langKey = langKey.pop();
+            var mimeTypes = {
+                'srt': 'text/x-srt',
+                'cmml': 'text/cmml'
+            }
+            if( !mimeTypes[ extension ] ){
+              js_log('Error: unknown extension:'+ extension);
+            }
+            //get language from form
+            langKey = $j('#timed_text_language').val();
 
-          if(extension == "srt") {
-            var srt = getSubtitle(file[0]);
-            $j(this).html("saving...");
-            $j('.ui-dialog-buttonpane').remove();
+            if(extension == "srt") {
+              var srt = getSubtitle(file[0]);
+              $j(this).html("saving...");
+              $j('.ui-dialog-buttonpane').remove();
 
-            var editToken = $j('input[name=wpEditToken]').val();
-            var title = wgTitle.split('.');
-            title.pop();
-            title.pop();
-            title = title.join('.') + '.' + langKey + '.srt';
-            do_api_req({
-              'data': {
-                'action' : 'edit',
-                'title' : title,
-                'text' : srt,
-                'token': editToken
-              }
-            }, function(dialog) {
-                return function( result ) {
-                  document.location.href = wgArticlePath.replace('/$1', '?title=' + title + '&action=edit');
-                  $j(dialog).dialog('close');
-               }}(this)
-            );
-          } else {
-            $j(this).html(gM("mwe-error-only-srt"));
+              var editToken = $j('input[name=wpEditToken]').val();
+              var title = wgTitle.split('.');
+              title.pop();
+              title.pop();
+              title = title.join('.') + '.' + langKey + '.srt';
+              do_api_req({
+                'data': {
+                  'action' : 'edit',
+                  'title' : title,
+                  'text' : srt,
+                  'token': editToken
+                }
+              }, function(dialog) {
+                  return function( result ) {
+                    document.location.href = wgArticlePath.replace('/$1', '?title=' + title + '&action=edit');
+                    $j(dialog).dialog('close');
+                 }}(this)
+              );
+            } else {
+              $j(this).html(gM("mwe-error-only-srt"));
+            }
           }
-        }
-        $j.addDialog(gM("mwe-add-subs-file-title"),
-           '<input type="file" id="timed_text_file_upload"></input><br />' + languageSelect,
-           cBtn);
-        $j('#timed_text_file_upload').change(function(ev) {
-          var langKey = this.files[0].name.split('.');
-          var extension = langKey.pop();
-          langKey = langKey.pop();
-          $j('#timed_text_language').val( langKey );
-        });
+          $j.addDialog(gM("mwe-add-subs-file-title"),
+             '<input type="file" id="timed_text_file_upload"></input><br />' + languageSelect,
+             cBtn);
+          $j('#timed_text_file_upload').change(function(ev) {
+            var langKey = this.files[0].name.split('.');
+            var extension = langKey.pop();
+            langKey = langKey.pop();
+            $j('#timed_text_language').val( langKey );
+          });
+      });
     });
   }
   $j('#toolbar').hide();